package com.algo.FJSP.common;
import com.algo.FJSP.common.Job;
import com.algo.FJSP.common.Machine;
import lombok.Data;

import java.util.ArrayList;

/**
 * @Author: guoxing
 * @Email: gx_study2022@163.com
 * @Description: 调度结果，包括机器信息、工序信息、适应度值=最大完工时间
 * @Date: 2024/6/29 12:46
 * @ClassName: ScheduleResult
 **/
/**
 * 作业调度类，用于优化作业在机器上的分配顺序，以最小化完成所有作业所需的时间（即最短完工时间）。
 */
@Data
public class ScheduleResult {
    /**
     * 作业的执行顺序数组，按照这个顺序分配给机器执行。
     */
    private ArrayList<Job> jobs;

    /**
     * 机器的作业执行顺序数组，表示每台机器接收作业的顺序。
     */
    private ArrayList<Machine> machines;

    /**
     * 完成所有作业所需的最短时间。
     */
    private int makespan;
}
